Код:
	/*:
 *-----------------------------------------------------------------------------
 *  DKR CommentsReader
 *-----------------------------------------------------------------------------
 *  For: RPGMAKER MV
 *  DKR_CommentsReader.js
 *-----------------------------------------------------------------------------
 *  08.08.2021 - Версия 1.0.0
 *-----------------------------------------------------------------------------
 * Поставляется AS-IS.
 * Вся ответственность при использовании - на Пользователе!
 *-----------------------------------------------------------------------------
 *-----------------------------------------------------------------------------
 * @author DarchanKaen
 * @target MV
 * @plugindesc (v.1.0.0) Плагин может получать содержимое Комментариев эвентов, парсить их и искать соответствия.
 * @help
 *   DKR CommentsReader 1.0
 * ----------------------------------------------------------------------------
 * ---Общая информация:
 * Плагин может получать содержимое Комментариев эвентов, парсить их и искать соответствия.
 * --Команды (для раздела "Скрипт"):
 *	DKR.CommentsReader.readEventComments(eventId); - выводит на консоль и возвращает содержимое Комментарием эвента;
 *	DKR.CommentsReader.assertEventComments(eventId, word); - возвращает true, если хоть один из Комментариев РАВЕН слову - иначе false;
 *	DKR.CommentsReader.containsEventComments(eventId, word); - возвращает true, если хоть один из Комментариев СОДЕРЖИТ слово - иначе false;
 *	DKR.CommentsReader.parseEventCommentsData(eventId, wordPattern); - возвращает результат разбора Комментария (вторую часть) ПЕРВОГО схожего слова;
 *	DKR.CommentsReader.getAllEventMatchWord(word); - возвращает массив эвентов, Комментарий которых СОДЕРЖИТ слово.
 * где:
 * eventId - Id эвента;
 * word - слово в ковычках (например, 'БАГ');
 * wordPattern  - слово в ковычках с разделителем (например, 'ОЧКИ:'; если в Комментарии указано 'ОЧКИ:29', вернет 29);
 * ----------------------------------------------------------------------------
 * ----Версия 1.0.0
 * - РЕЛИЗ
 * ----------------------------------------------------------------------------
 */
var Imported = Imported || {};
Imported.DKR_CommentsReader = true;
var DKR = DKR || {};          
DKR.CommentsReader = DKR.CommentsReader || {}; 
DKR.CommentsReader.version = 1.0;
( () => {
	
	
//----DATA	
const commentCommandNumberA = 108;
const commentCommandNumberB = 408;
const modeAssert = 'ASSERT';	
const modeContains = 'CONTAINS';
	
//----LOGIC	
//--has
let isEventCommentsListHas = function(eventId, logicMode, word){
	let hasResult = false;
	
		//console.log('___isEventCommentsListHas_MODE_WORD:', logicMode, word);
	
	let eventCommentsList = getEventCommentsList(eventId);
	
	for(let n = 0; n < eventCommentsList.length; n++){
		let currentComment = eventCommentsList[n];
		
		switch(logicMode){
			case modeAssert:
				if(word.trim() === currentComment){
					hasResult = true;
					return hasResult;
				}
				break;
			case modeContains:
				if( true === currentComment.includes( word.trim() ) ){
					hasResult = true;
					return hasResult;
				}
				break;
		}
		
	}
	
	return hasResult;
}
//--parse
let parseCommentsData = function(eventId, word, negativeMask){
	let сommentData = negativeMask;
	
	let eventCommentsList = getEventCommentsList(eventId);
	
	for(let n = 0; n < eventCommentsList.length; n++){
		let currentComment = eventCommentsList[n];
		
		if( true === currentComment.includes( word.trim() ) ){
			let reqComment = currentComment;
			let reqCommentData =  reqComment.split(word)[1].trim();
			сommentData = reqCommentData;
			break; //ONLY FIRST VALUE!
		}
		
	}
	
	return сommentData;
}
//--core
let getEventCommentsList = function(eventId){
	let eventToInspect = $gameMap.event(eventId);
	
	let commentsList = [];
	
	if(undefined === eventToInspect.event() || null === eventToInspect.event()){
		return inspectResultData;
	}
	
	let eventPages = eventToInspect.event().pages;
	
	for(let n = 0; n < eventPages.length; n++){
		let eventsCommandsList = eventPages[n].list;
		
		for(let m = 0; m < eventsCommandsList.length; m++){
			let currentCommand = eventsCommandsList[m];
			
			if(commentCommandNumberA === currentCommand.code || commentCommandNumberB === currentCommand.code){
				let comment = currentCommand.parameters[0].trim();
				if(comment.length > 0){
					commentsList.push(comment);
				}
			}
			
		}
		
	}
	
	return commentsList;
}	
	
	
	
//----COMMANDS
DKR.CommentsReader.readEventComments = function(eventId){
	let eventCommentsList = getEventCommentsList(eventId);
	
		console.log('DKR_CommentsReader_eventCommentsList:', eventCommentsList);
	
	return eventCommentsList;
}
	
DKR.CommentsReader.assertEventComments = function(eventId, word){
	let assertResult = isEventCommentsListHas(eventId, 'ASSERT', word);
	
		//console.log('isEventCommentsListHas_ASSERT__' + word + ': ', assertResult);
	
	return assertResult;
}
DKR.CommentsReader.containsEventComments = function(eventId, word){
	let containsResult = isEventCommentsListHas(eventId, 'CONTAINS', word);
	
		//console.log('isEventCommentsListHas_CONTAINS__' + word + ': ', containsResult);
	
	return containsResult;
}	
	
DKR.CommentsReader.parseEventCommentsData = function(eventId, wordPattern){
	let parseResult = parseCommentsData(eventId, wordPattern);
	
		//console.log('parseResult__' + wordPattern + ': ', parseResult);
	
	return parseResult;
}
DKR.CommentsReader.getAllEventMatchWord = function(wordPattern){
	let matchEventsList = [];
	
	let eventsList = $gameMap.events();
	for(let n = 0; n < eventsList.length; n++){
		if( true === isEventCommentsListHas(eventsList[n].eventId(), 'CONTAINS', wordPattern) ){
			matchEventsList.push(eventsList[n]);
		}
	}
	
		//console.log('matchEventsList:', matchEventsList);
	
	return matchEventsList;
	
}	
	
	
})();
 
Социальные закладки